/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upn.sigeadmi.cxc.beans;

import edu.upn.sigeadmi.cxc.bc.TasaInteresDelegate;
import edu.upn.sigeadmi.cxc.be.TasaInteres;
import edu.upn.sigeadmi.cxc.util.JasperReportUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;// Import
import javax.faces.model.SelectItem;
import javax.sql.DataSource; // import


/**
/**
 *
 * @author Administrador
 */
public class TasaInteresController extends AbstractController {

    private TasaInteresDelegate delegado;
    private TasaInteres tasainteres;

    /*
    Modificacion realizada por Daniel Zavaleta, se agregaron 2 atributos
     * para poder usarlos en el Combo.
     */
    private List<SelectItem> intereses;
    private String selectedItem;

    public TasaInteresController() {
        delegado = new TasaInteresDelegate();
        tasainteres = new TasaInteres();
    }

    public String nuevo() {
        tasainteres = new TasaInteres();
        return "nuevo";
    }

    public String edita() {
        return "editar";
    }

    public String mostrar() {
        return "mostrar";
    }

    public String editar() {
        try {
            if (tasainteres != null) {
                delegado.editar(tasainteres);
                return "volver";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

    public String eliminar() throws Exception {
        try {
            if (tasainteres != null) {
                delegado.eliminar(tasainteres);
            } else {
            }
        } catch (Exception e) {
            throw new Exception("Borrar. " + e.getMessage(), e);
        }
        return "";
    }

    public String volver() {
        tasainteres = null;
        return "listar";
    }

    public String guardar() {
        try {
            delegado.crear(tasainteres);
            return "volver";
        } catch (Exception e) {
            e.fillInStackTrace();
        }
        return "";
    }

    public List<TasaInteres> getTasaIntereses() {
        try {
            return delegado.listar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /*Modificacion creada por Daniel Zavaleta.
    Se creo el Método para acceder a la lista de tasa de intereses
     * pero ahora desde un model, el cual será usado en el combo.
     */
    public List<SelectItem> getListaInteres() {
        List<SelectItem> combo = null;
        try {
            List<TasaInteres> lista = delegado.listar();
            combo = new ArrayList<SelectItem>();
            if (lista.size() > 0) {
                combo.add(new SelectItem(String.valueOf(0), "Tasas Disponibles"));
                for (TasaInteres t : lista) {
                    combo.add(new SelectItem(String.valueOf(t.getPkTasaInteres()), t.getTasa().toString()));
                }
            } else {
                combo.add(new SelectItem(String.valueOf(0), "No hay Registros"));
            }

        } catch (Exception e) {
            combo.add(new SelectItem(String.valueOf(0), "ERROR"));
        }

        return combo;
    }

    public TasaInteresDelegate getDelegado() {
        return delegado;
    }

    public void setDelegado(TasaInteresDelegate delegado) {
        this.delegado = delegado;
    }

    public TasaInteres getTasainteres() {
        return tasainteres;
    }

    public void setTasainteres(TasaInteres tasainteres) {
        this.tasainteres = tasainteres;
    } 
    @Resource(name = "jdbc/sigeadmi")
    private DataSource ds;
// Fiorella Garcia
    public String imprimirReporte() {
        try {
            Map parametros = new HashMap();
 //           IUController iu = (IUController) getBean("iu");
 //           parametros.put("usuario", iu.getLoginUsuario() + "@sigeadmi");
              JasperReportUtil jru = new JasperReportUtil();
            jru.setFileName("Reporte de Tasa Intereses");
            jru.setAttachment(true);
//            jru.exportReport("cxc_tasainteres", "pdf", ds.getConnection(), parametros);
            jru.exportReport("cxc_tasainteres", "pdf", ds.getConnection());
           
        } catch (Exception e) {
                error(e);
        }
        return "";

    }
}
